package com.terry.test3;

import java.util.ArrayDeque;
import java.util.Deque;
import java.util.Scanner;

/**
 * 找最小数
 *
 * 给你一个以字符串表示的非负整数 num 和一个整数 k ，移除这个数中的 k 位数字，使得剩下的数字最小。请你以字符串形式返回这个最小的数字。
 *
 * 示例 1 ：
 *
 * 输入：num = "1432219", k = 3
 * 输出："1219"
 * 解释：移除掉三个数字 4, 3, 和 2 形成一个新的最小的数字 1219 。
 * 示例 2 ：
 *
 * 输入：num = "10200", k = 1
 * 输出："200"
 * 解释：移掉首位的 1 剩下的数字为 200. 注意输出不能有任何前导零。
 * 示例 3 ：
 *
 * 输入：num = "10", k = 2
 * 输出："0"
 * 解释：从原数字移除所有的数字，剩余为空就是 0 。
 *
 * @author 小八
 * @date 2023年02月09日10:12
 */
public class Title6 {

    public static void main(String[] args) {

        Scanner in = new Scanner(System.in);

        while(in.hasNextLine()){
            //维护一个单调递增的栈
            Deque<Character> deque = new ArrayDeque<>();

            String line = in.nextLine();
            int n = Integer.parseInt(in.nextLine());
            if(n == line.length()){
                System.out.print(0);
            }else{
                for(int i=0;i<line.length();i++){
                    while(!deque.isEmpty() && line.charAt(i) < deque.getLast() && n>0){
                        deque.removeLast();
                        n--;
                    }
                    deque.addLast(line.charAt(i));
                }
                while(n>0){
                    deque.removeLast();
                    n--;
                }
                while(deque.size()>1 && deque.getFirst() == '0'){
                    deque.removeFirst();
                }
                StringBuffer buffer = new StringBuffer();
                while(!deque.isEmpty()){
                    buffer.append(deque.removeFirst());
                }
                System.out.print(buffer.toString());
            }

//        大数据会超时
//            String line = in.nextLine();
//            int n = Integer.parseInt(in.nextLine());
//            if(n == line.length()){
//                System.out.print(0);
//            }else{
//                StringBuffer builder = new StringBuffer(line);
//                while(n>0){
//                    int index = 0;
//                    while(index+1<builder.length() && builder.charAt(index)<= builder.charAt(index+1)){
//                        index++;
//                    }
//                    builder.deleteCharAt(index);
//                    n--;
//                }
//                while(builder.charAt(0)=='0'){
//                    builder.deleteCharAt(0);
//                }
//                System.out.print(builder.toString());
//            }
        }
    }

}
